package main

import "fmt"

func main8() {

	var myMap map[int]string
	myMap = make(map[int]string)
	myMap[1] = "java"
	myMap[2] = "c++"
	myMap[3] = "go"
	fmt.Println(myMap)

	// := 初始化
	myMap1 := make(map[int]string, 10)
	myMap1[1] = "java"
	myMap1[2] = "c++"
	myMap1[3] = "go"
	fmt.Println(myMap1)

	// 默认赋值
	myMap2 := map[int]string{
		1: "java",
		2: "c++",
		3: "go",
	}

	fmt.Println(myMap2)

	// 新增
	myMap2[4] = "python"
	// 修改
	myMap2[1] = "javascript"

	fmt.Println(myMap2)

	// 删除
	delete(myMap2, 1)

	fmt.Println(myMap2)

	// 遍历
	for k, v := range myMap2 {
		fmt.Println(k, v)
	}

	// 函数传递是引用传递
	//基本数组/基本类型/结构体默认是值传递
	// slice map都是引用传递 可以修改值
	changeMapValue(myMap2)

	fmt.Println(myMap2)
}

func changeMapValue(myMap map[int]string) {
	myMap[5] = "rust"
}
